YOLOv8 핵심 아키텍처 C2f 모듈

YOLOv8 핵심 아키텍처 C2f 모듈

1. 서론

1.1 객체 탐지 기술의 패러다임과 YOLO의 부상

객체 탐지(Object Detection)는 컴퓨터 비전 분야의 근간을 이루는 핵심 과업으로, 이미지나 영상 내에서 객체의 위치를 파악하고 종류를 식별하는 기술을 포괄한다. 초기 객체 탐지 연구는 R-CNN(Region-based Convolutional Neural Network) 계열로 대표되는 2-stage detector가 주도하였다.1 이 방식은 객체 후보 영역을 먼저 제안하고, 각 영역에 대해 분류를 수행하는 2단계 접근법으로 높은 정확도를 보장했지만, 복잡한 파이프라인으로 인해 실시간 처리에 한계를 보였다. 이러한 상황에서 YOLO(You Only Look Once)의 등장은 객체 탐지 분야의 패러다임 전환을 촉발했다.2

YOLO는 전체 이미지를 단일 신경망에 한 번만 입력하여 경계 상자(bounding box)와 클래스 확률(class probability)을 동시에 예측하는 1-stage detector 방식을 채택했다.3 이 혁신적인 접근법은 2-stage detector의 정확성에 근접하면서도 월등히 빠른 처리 속도를 구현하여, 자율주행, 지능형 영상 감시, 로보틱스 등 실시간성이 필수적인 다양한 산업 분야로의 기술 확산을 견인했다.3

1.2 YOLOv8의 등장과 C2f 모듈의 중요성

YOLO 알고리즘은 지속적인 발전을 거듭해왔으며, 2023년 Ultralytics가 공개한 YOLOv8은 그 정점에 있는 모델로 평가받는다.7 YOLOv8은 이전 버전을 뛰어넘는 정확도와 속도의 균형을 달성하며 새로운 기준을 제시했다. 이러한 성능 향상의 배경에는 anchor-free detection, decoupled head와 같은 여러 구조적 개선이 존재하지만, 그중에서도 가장 핵심적인 변화는 C2f(Cross Stage Partial + fusion) 모듈의 도입이다.2

C2f 모듈은 YOLOv5에서 사용되던 CSPLayer, 즉 C3 모듈을 대체하기 위해 설계되었다.10 이 모듈은 특징 융합(feature fusion) 메커니즘을 재구성하고 네트워크 내 경사 흐름(gradient flow)을 최적화함으로써 YOLOv8의 전반적인 성능을 한 단계 끌어올리는 중추적인 역할을 수행한다.7 단순히 이전 모듈을 개선한 것을 넘어, C2f는 현대 심층 신경망 설계의 두 가지 핵심적인 흐름, 즉 연산 효율성을 극대화하려는 CSPNet(Cross Stage Partial Network)의 철학과 풍부한 특징 표현력을 확보하려는 고밀도 연결(dense connectivity) 패턴의 장점을 성공적으로 결합한 구조적 종합체라 할 수 있다. 이는 종종 상충하는 두 목표 사이의 균형을 맞춘 진일보한 아키텍처 패턴으로, C2f가 단순한 반복이 아닌 혁신으로 평가받는 이유이다.

1.3 본 안내서의 목적과 구성

본 안내서는 YOLOv8 아키텍처의 심장부라 할 수 있는 C2f 모듈의 설계 철학, 내부 구조, 이론적 배경 및 기능적 효용성을 심층적으로 분석하는 것을 목표로 한다. 이를 위해 먼저 C2f 모듈의 구조를 상세히 분해하고 데이터 흐름을 추적하며, 그 이론적 뿌리가 되는 CSPNet의 원리를 고찰한다. 이어 이전 세대 모듈인 C3와의 직접적인 비교 분석과 정량적 벤치마크를 통해 C2f의 성능적 우위를 명확히 입증한다. 마지막으로, YOLO 생태계 내에서 C2f 모듈을 기반으로 파생된 최신 연구 동향을 살펴봄으로써 미래 객체 탐지 아키텍처 설계에 대한 깊이 있는 통찰을 제공하고자 한다.

2. C2f 모듈의 구조적 분석

2.1 설계 철학: CSPNet과 ELAN의 아이디어 계승

C2f 모듈의 명칭은 공식적으로 정의된 바 없으나, 커뮤니티에서는 “Cross-Stage Partial with 2 convolutions” 또는 그 기능적 특성을 반영한 “Cross-Stage Partial with Full Concatenation” 등으로 해석된다.11 이름에서 알 수 있듯, C2f의 핵심 설계 철학은 CSPNet의 원리를 계승하고 발전시키는 데 있다. CSPNet은 입력 특징 맵을 두 경로로 분할하여 한쪽은 복잡한 연산을 수행하고 다른 한쪽은 건너뛰게 한 후 다시 병합함으로써, 불필요한 연산량을 줄이면서도 풍부한 경사 조합을 통해 학습 효율을 높이는 것을 목표로 한다.13 C2f는 이러한 분할-처리-병합 구조를 채택하여 연산 효율성을 확보한다.

동시에 C2f는 ELAN(Efficient Layer Aggregation Network)의 아이디어를 참조한 것으로도 알려져 있다.8 ELAN은 여러 계층에서 추출된 특징들을 효율적으로 집계하여 네트워크의 학습 능력을 극대화하는 데 초점을 맞춘다. C2f가 Bottleneck 블록의 모든 중간 출력을 병합하는 구조는 이러한 ELAN의 철학과 맞닿아 있으며, 이는 다양한 수준의 특징 정보를 손실 없이 활용하려는 설계 의도를 명확히 보여준다.

2.2 핵심 구성 요소: Bottleneck 블록과 특징 맵 분할-병합 메커니즘

C2f 모듈은 몇 가지 핵심적인 구성 요소의 유기적 결합으로 이루어진다.

  • Conv Block: 모듈의 입구와 출구에 위치하며, 기본적인 특징 추출 및 채널 차원 조절 기능을 수행한다. 통상적으로 2D 컨볼루션(Conv2D), 배치 정규화(BatchNorm2d), 그리고 SiLU(Sigmoid Linear Unit) 활성화 함수로 구성된다.4

  • Split Operation: 초기 Conv Block을 통과한 특징 맵은 채널 차원을 기준으로 두 부분으로 나뉜다. 이는 PyTorch의 torch.chunk(2, 1) 또는 split() 함수를 통해 구현되며, CSP 구조의 시작을 알리는 단계이다.4

  • Bottleneck Block: C2f 모듈 내에서 실질적인 특징 추출을 반복적으로 수행하는 핵심 연산 유닛이다. YOLOv8에서는 YOLOv5와 달리 1x1 Conv 대신 두 개의 3x3 Conv를 사용하는 구조로 변경되었으며 10, 입력과 출력을 더하는 잔차 연결(residual/shortcut connection)을 포함한다. 이 잔차 연결은 네트워크가 깊어질 때 발생할 수 있는 경사 소실(vanishing gradient) 문제를 완화하는 데 결정적인 역할을 한다.4 C2f 모듈 하나에 포함되는 Bottleneck 블록의 개수(

n)는 YOLOv8 모델의 규모(n, s, m, l, x)를 결정하는 depth_multiple 파라미터에 의해 동적으로 조절된다.4

  • Concat Operation: C2f 모듈의 가장 독창적인 부분으로, 분할되었던 두 경로 중 하나와, 순차적으로 Bottleneck 블록들을 통과하며 생성된 모든 중간 출력 특징 맵들을 채널 차원에서 하나로 병합(concatenate)한다.11

2.3 데이터 흐름 분석

C2f 모듈의 데이터 흐름은 다음과 같은 3단계로 요약할 수 있다.

  1. 초기 컨볼루션 및 분할: 입력 텐서 x는 첫 번째 Conv Block(cv1)을 통과하며 채널 수가 확장된 후, 두 개의 동일한 크기를 가진 텐서 y1과 y2로 분할된다. 이 중 y1은 연산 과정 없이 최종 병합 단계까지 보존되는 ‘지름길(shortcut path)’ 역할을 하며, y2는 연속적인 Bottleneck 처리를 위해 다음 단계로 전달된다.4
  2. 순차적 Bottleneck 처리 및 중간 출력 수집: y2는 첫 번째 Bottleneck 블록(m1)의 입력이 되어 출력 y3를 생성한다. 여기서 C2f의 핵심 메커니즘이 작동하는데, y3는 다음 Bottleneck 블록(m2)의 입력이 되는 동시에, 최종 병합을 위해 별도의 리스트에 저장된다. 이 과정은 n개의 모든 Bottleneck 블록에 대해 순차적으로 반복되며, 각 블록의 출력이 누적되어 저장된다.11
  3. 최종 연결 및 컨볼루션: 1단계에서 보존된 y1과, 2단계에서 수집된 모든 Bottleneck 블록의 출력들(y3,y4,…,yn+2)이 torch.cat 연산을 통해 채널 차원을 따라 하나의 거대한 텐서로 병합된다. 이 병합된 텐서는 마지막 Conv Block(cv2)을 통과하여 채널 차원이 정리된 최종 출력 특징 맵을 생성한다.12

이러한 데이터 흐름은 C2f 모듈이 일종의 ’정보 누적기(information accumulator)’로 기능하게 한다. 일반적인 잔차 네트워크가 정보를 우회시키는 데 그치는 반면, C2f는 각 변환 단계의 결과를 능동적으로 수집하고 보존한다. 이는 단일 모듈 내에서 다양한 수준의 추상화된 특징(초기 Bottleneck의 저수준 특징부터 후기 Bottleneck의 고수준 특징까지)을 모두 확보하려는 설계 의도를 보여준다. 결과적으로, 네트워크의 Neck 부분(예: FPN/PANet)이 전적으로 담당하던 다중 스케일 특징 융합의 부담을 C2f 모듈 자체적으로 일부 완화시켜, 전체 네트워크의 효율성과 성능을 높이는 효과를 가져온다.

2.4 PyTorch 구현 기반 의사 코드 분석

Ultralytics의 공식 구현을 바탕으로 C2f 모듈의 작동 방식을 의사 코드로 표현하면 다음과 같다.12

# C2f 모듈의 PyTorch 스타일 의사 코드
# Ultralytics 구현 기반 [12]

class C2f(Module):
def __init__(self, in_channels, out_channels, num_bottlenecks=1, expansion=0.5):
# c: 은닉 채널 수, 예: out_channels * 0.5
self.hidden_channels = int(out_channels * expansion)

# cv1: 초기 컨볼루션, 채널을 2 * hidden_channels로 확장
self.cv1 = Conv(in_channels, 2 * self.hidden_channels, kernel_size=1, stride=1)

# cv2: 최종 컨볼루션, 병합된 특징들을 out_channels로 융합
# 입력 채널 수 = (2 + num_bottlenecks) * hidden_channels
self.cv2 = Conv((2 + num_bottlenecks) * self.hidden_channels, out_channels, kernel_size=1, stride=1)

# m: 'n'개의 Bottleneck 모듈 리스트
self.bottlenecks = ModuleList(
Bottleneck(self.hidden_channels, self.hidden_channels, shortcut=True, expansion=1.0)
for _ in range(num_bottlenecks)
)

def forward(self, x):
# 1. 초기 컨볼루션 및 분할
# x ->
# y_initial ->
y_initial = self.cv1(x)

# y_initial을 채널 차원에서 두 부분으로 분할
# y_split -> [y1, y2] 텐서 리스트
# y1, y2 각각의 shape:
y_split = list(y_initial.chunk(2, dim=1))

# 2. 순차적 Bottleneck 처리 및 수집
# y_outputs는 [y1, y2]로 시작
# 각 루프에서 y_outputs의 마지막 요소를 다음 bottleneck 'm'에 전달
# 'm'의 출력을 리스트에 추가
y_outputs = y_split
for m in self.bottlenecks:
y_outputs.append(m(y_outputs[-1]))

# 3. 연결 및 최종 컨볼루션
# y_outputs의 모든 텐서를 채널 차원에서 병합
# y_cat ->
y_cat = torch.cat(y_outputs, dim=1)

# 최종 융합
# output ->
return self.cv2(y_cat)

3. 이론적 배경: Cross Stage Partial Network (CSPNet)

3.1 문제 제기: 심층 신경망에서의 중복 경사 정보 (Duplicate Gradient Information)

C2f 모듈의 근간을 이해하기 위해서는 그 이론적 토대가 된 CSPNet을 먼저 살펴봐야 한다. CSPNet 논문은 DenseNet과 같이 연결성이 높은 심층 신경망 아키텍처의 비효율성 문제에서 출발한다.13 DenseNet은 각 계층이 모든 선행 계층의 특징 맵을 입력으로 받아 특징 재사용을 극대화하지만, 이 과정에서 역전파(backpropagation) 시 중복된 경사 정보(duplicate gradient information)가 대량으로 발생한다. 즉, 서로 다른 계층의 가중치를 업데이트하는 데 사용되는 경사 정보의 상당 부분이 동일한 내용을 복사하여 전파하는 것이다. 이러한 경사 정보의 중복은 불필요한 연산량을 초래하고 메모리 대역폭을 낭비하며, 결과적으로 모델의 학습 과정을 비효율적으로 만든다고 CSPNet은 지적했다.13

3.2 CSPNet의 해결 방안: 교차 단계 부분 연결(Cross-Stage Partial Connection)

CSPNet은 이 문제를 해결하기 위해 ’교차 단계 부분 연결(Cross-Stage Partial Connection)’이라는 독창적인 구조를 제안했다. 그 원리는 다음과 같다.

  1. 네트워크의 각 단계(stage) 시작 부분에서 입력 특징 맵을 채널 기준으로 두 부분으로 분할한다.13
  2. 분할된 한 부분(part 1)은 해당 단계의 주된 연산 블록(예: Dense Block, ResNet Block)을 통과하여 복잡한 특징 추출 과정을 거친다.
  3. 다른 한 부분(part 2)은 아무런 연산도 거치지 않고, 마치 지름길처럼 해당 단계를 건너뛰어 바로 다음 단계의 입력으로 전달될 준비를 한다.13
  4. 단계의 마지막에서, 연산을 마친 part 1의 출력과 지름길을 통과한 part 2가 하나로 병합되어 다음 단계의 입력이 된다.

이 구조는 경사 흐름을 두 개의 매우 다른 경로, 즉 복잡한 변환을 거치는 경로와 아무런 변환도 거치지 않는 경로로 명확하게 분리한다. 역전파 시, 이 두 경로를 따라 흐르는 경사 정보는 서로 상관관계가 낮아지게(decorrelate) 된다. 결과적으로 네트워크는 중복이 최소화된, 더 풍부하고 다양한 경사 정보를 학습에 활용할 수 있게 되어 학습 능력이 강화된다.13

3.3 연산량, 메모리 비용 감소 및 학습 능력 강화의 원리

CSPNet의 설계는 세 가지 주요 이점을 제공한다.

  • 연산량 감소: 전체 특징 맵의 절반가량만이 복잡한 연산 블록을 통과하므로, 해당 단계의 총 연산량이 크게 줄어든다. CSPNet은 이 원리를 통해 기존의 ResNet, DenseNet 등의 아키텍처에 적용했을 때, 10%에서 20%의 연산량을 줄이면서도 동등하거나 더 높은 정확도를 달성할 수 있음을 실험적으로 증명했다.13
  • 메모리 비용 감소: 특징 맵을 복사하고 연결하는 과정에서 발생하는 메모리 접근 및 전송량(memory traffic)이 감소한다. 특히 여러 스케일의 특징 맵을 생성하는 특징 피라미드 네트워크(FPN)와 결합될 때 메모리 사용량을 효과적으로 줄일 수 있다.14
  • 학습 능력 강화: 경사 흐름을 분리함으로써, 네트워크는 더 이상 중복된 정보에 얽매이지 않고 다양한 관점의 경사 조합을 학습할 수 있게 된다. 이는 모델의 표현력을 높여, 상대적으로 가벼운(lightweight) 모델에서도 충분한 정확도를 유지할 수 있도록 하는 원동력이 된다.13

결론적으로, C2f 모듈의 설계는 CSPNet이 제기한 ‘중복 경사’ 문제에 대한 직접적이고 논리적인 해결책의 연장선상에 있다. 특징 맵 분할은 연산량을 줄이기 위한 해법이며, 다중 경로 연결은 분리된 경사 흐름을 다시 풍부하게 만들기 위한 해법이다. C2f는 여기서 한 걸음 더 나아가, 연산이 수행되는 경로 내부에 또다시 여러 개의 하위 경로(각 Bottleneck의 출력)를 만들어 연결함으로써 CSP의 철학을 더욱 극대화한, 진화된 형태라고 볼 수 있다.

4. C3 모듈과의 비교 분석

4.1 구조적 차이점: 정보 흐름의 재구성

C2f 모듈의 혁신성은 YOLOv5의 핵심 블록이었던 C3 모듈과 비교할 때 더욱 명확해진다. 두 모듈 모두 CSPNet의 원리를 기반으로 하지만, 정보 흐름을 구성하는 방식에서 결정적인 차이를 보인다.

  • C3 Module (YOLOv5): C3 모듈 역시 입력 특징 맵을 두 경로로 분할한다. 한 경로는 n개의 Bottleneck 블록을 순차적으로 통과하며, 이 스택의 최종 출력만이 다음 단계로 전달된다. 다른 경로는 간단한 컨볼루션 연산만을 거친다. 마지막으로 이 두 경로의 출력이 연결(concatenate)된 후, 최종 컨볼루션 레이어를 통해 융합된다.11 즉, 정보 흐름은 크게 두 개의 줄기로 구성된 비교적 단순한 구조를 가진다.
  • C2f Module (YOLOv8): C2f 모듈도 입력을 유사하게 분할하지만, Bottleneck 블록을 처리하는 방식이 다르다. n개의 Bottleneck 블록을 순차적으로 통과시키면서, 모든 중간 단계의 출력을 하나도 빠짐없이 수집한다. 그리고 이 모든 중간 출력들을 처음 분할되었던 다른 경로의 특징 맵과 함께 연결한다.11 이는 훨씬 더 많고 조밀한 정보 경로를 생성하여, 연구자들이 표현하는 “더 풍부한 정보 흐름(richer information flow)“을 가능하게 한다.17

이러한 구조적 차이는 아래 표로 요약할 수 있다.

Table 1: C2f 모듈과 C3 모듈의 구조 및 기능 비교

특징 (Feature)C3 모듈 (YOLOv5)C2f 모듈 (YOLOv8)
기반 철학Cross Stage Partial (CSP)Cross Stage Partial (CSP) + 풍부한 융합 (Richer Fusion)
입력 처리특징 맵을 두 경로로 분할특징 맵을 두 경로로 분할
Bottleneck 처리n개의 Bottleneck 블록을 순차적으로 처리n개의 Bottleneck 블록을 순차적으로 처리
출력 연결 (Concatenation)분할된 경로 + Bottleneck 스택의 최종 출력만 연결분할된 경로 + Bottleneck 스택의 모든 중간 출력 연결 11
정보 흐름두 개의 주 경로를 통한 상대적으로 단순한 흐름다수의 병렬 분기를 통한 복잡하고 풍부한 정보 흐름 18
주요 장점연산 효율성 및 경사 흐름 개선연산 효율성을 유지하며 특징 표현 다양성 극대화경사 전파 강화

4.2 기능적 차이점: 특징 표현의 다양성과 경사 전파 효율성

구조적 차이는 곧 기능적 차이로 이어진다.

  • 특징 표현의 다양성: C3 모듈은 가장 깊은 곳에서 추출된, 즉 가장 추상화된 최종 특징의 중요성을 암묵적으로 가정한다. 반면, C2f는 이러한 위계적 가정을 탈피한다. C2f는 모든 중간 출력을 동등하게 연결함으로써, 초기 Bottleneck에서 나온 저수준의 세부적인 특징부터 후기 Bottleneck에서 나온 고수준의 의미론적 특징까지, 모든 추상화 수준의 특징들이 잠재적으로 유용할 수 있다는 원칙에 따라 작동한다. 최종 컨볼루션(cv2)은 이 ‘민주화된’ 특징들 중에서 어떤 것을 더 중요하게 조합할지 학습하는 일종의 가중치 메커니즘 역할을 한다. 이 유연성 덕분에 모델은 특정 과제에 맞춰 저수준 특징(소형 객체 탐지에 유리)과 고수준 특징(객체 분류에 유리)의 중요도를 데이터 기반으로 조절할 수 있게 되어, 전반적인 탐지 성능과 강건성이 향상된다.11
  • 경사 전파 효율성: C2f의 다중 연결 구조는 역전파 시 경사가 흐를 수 있는 더 많고 짧은 경로를 제공한다. 이는 심층 네트워크의 고질적인 문제인 경사 소실을 효과적으로 완화한다.11 각 Bottleneck 블록이 최종 출력에 더 직접적으로 연결되어 있기 때문에, 학습 과정에서 더 명확하고 강한 감독 신호(supervision signal)를 받게 되어 학습이 안정화되고 빨라지는 효과를 가져온다.

4.3 성능적 우위: COCO 데이터셋 기반 mAP 및 추론 속도 벤치마크 분석

C2f 모듈의 구조적, 기능적 우위는 실제 성능 지표를 통해 명확히 입증된다. 업계 표준 벤치마크인 COCO 데이터셋에서의 YOLOv5와 YOLOv8 성능 비교는 C2f 모듈의 효과를 정량적으로 보여준다.9

Table 2: YOLOv5 vs. YOLOv8 COCO 데이터셋 성능 벤치마크

모델 (Model)mAPval 50-95파라미터 (M)FLOPs (B) @640속도 (ms) CPU ONNX속도 (ms) T4 TensorRT
YOLOv5n28.02.67.773.61.12
YOLOv8n37.33.28.780.41.47
YOLOv5s37.49.124.0120.71.92
YOLOv8s44.911.228.6128.42.66
YOLOv5m45.425.164.2233.94.03
YOLOv8m50.225.978.9234.75.86
YOLOv5l49.053.2135.0408.46.61
YOLOv8l52.943.7165.2375.29.06
YOLOv5x50.797.2246.4763.211.89
YOLOv8x53.968.2257.8479.114.37

벤치마크 분석 결과, YOLOv8 모델군이 전반적으로 YOLOv5 모델군에 비해 적거나 유사한 파라미터 및 연산량(FLOPs)으로 더 높은 평균 정밀도(mAP)를 달성하는 것을 확인할 수 있다. 특히 주목할 만한 점은 가장 작은 모델인 YOLOv8n이 YOLOv5s보다 68%나 적은 파라미터를 사용하면서도 거의 동일한 mAP(37.3 vs 37.4)를 기록했다는 사실이다.9 또한, 중간 크기 모델인 YOLOv8m은 YOLOv5m과 파라미터 수가 거의 같지만 mAP는 4.8점이나 높다. 이는 C2f 모듈이 단순히 연산량을 줄이는 것을 넘어, 제한된 자원 내에서 특징 표현의 질을 극대화하여 모델의 전반적인 정확도를 크게 향상시켰음을 명백히 보여주는 증거이다.

5. C2f 모듈의 기능적 효용성 고찰

5.1 경사 흐름 최적화: Vanishing Gradient 문제 완화

C2f 모듈의 가장 중요한 기능적 효용성 중 하나는 경사 흐름의 최적화이다. 심층 신경망에서 층이 깊어질수록 역전파 과정에서 경사가 점차 작아져 사라지는 ‘경사 소실(vanishing gradient)’ 문제가 발생하기 쉽다. C2f 모듈은 다수의 병렬적인 정보 경로와 짧은 연결을 제공함으로써 이 문제를 효과적으로 완화한다.11 각 Bottleneck 블록의 출력이 최종단에 직접 연결되는 구조 덕분에, 네트워크의 깊은 곳에 있는 가중치들도 학습 과정에서 더 직접적이고 강한 경사 신호를 받을 수 있다. 이는 YOLOv8이 더 깊고 복잡한 구조를 가지면서도 안정적으로 학습할 수 있는 기반을 제공하며, Bottleneck 블록 내의 잔차 연결이 가진 이점을 네트워크 전체 구조 차원에서 극대화한 것으로 해석할 수 있다.4

5.2 풍부한 특징 표현 및 융합

C2f 모듈은 단일 블록 내에서 다양한 수준의 특징을 효과적으로 융합하는 능력이 탁월하다. 네트워크의 초기 레이어에서 추출되는 저수준 특징(shallow features)은 객체의 윤곽선이나 질감과 같은 공간적, 세부적 정보를 담고 있으며, 후기 레이어에서 추출되는 고수준 특징(deep features)은 객체의 종류와 같은 의미론적 정보를 담고 있다. C2f는 모든 중간 단계의 특징 맵을 보존하고 최종적으로 결합함으로써, 이러한 저수준 정보와 고수준 정보를 손실 없이 통합한다.6 이를 통해 네트워크는 최종 예측을 수행할 때, 특정 객체나 장면에 가장 유용한 특징들을 선택적으로 활용할 수 있는 유연성을 확보하게 되어 모델의 전체적인 표현력이 크게 향상된다.11

5.3 소형 객체 탐지 성능 향상에의 기여

소형 객체 탐지는 객체 탐지 분야의 오랜 난제 중 하나이다. 소형 객체는 컨볼루션과 풀링(pooling)을 거치는 다운샘플링 과정에서 그 특징 정보가 쉽게 소실되기 때문이다. C2f 모듈의 구조는 이 문제에 대한 효과적인 해결책을 제시한다. 모듈 내 초기 Bottleneck 블록에서 추출된 특징들은 상대적으로 해상도가 높고 소형 객체의 세부 정보를 잘 보존하고 있다. C2f는 이 특징들을 후속 연산 과정에서 희석시키지 않고 최종 연결단까지 직접 전달하는 경로를 제공한다.11 덕분에 네트워크는 최종 예측 시 소형 객체의 미세한 특징을 활용할 수 있게 되어 탐지 성능이 향상된다. 다수의 연구에서 YOLOv8이 소형 객체 탐지에서 우수한 성능을 보이는 것으로 보고되는데 1, 이는 C2f 모듈의 구조적 이점과 직접적인 연관이 있다고 볼 수 있다.

6. YOLO 생태계 내에서의 역할과 발전 동향

6.1 YOLOv8 Backbone 및 Neck 아키텍처 내에서의 핵심적 역할

YOLOv8의 전체 아키텍처는 특징 추출을 담당하는 Backbone, 다양한 수준의 특징을 융합하는 Neck, 그리고 최종 탐지 결과를 출력하는 Head의 세 부분으로 구성된다.2 C2f 모듈은 이 구조 전반에 걸쳐 핵심적인 빌딩 블록으로 사용된다. Backbone에서는 입력 이미지의 해상도를 점진적으로 줄여나가며 고수준의 의미론적 특징을 추출하는 데 반복적으로 활용된다. 이후 Neck 부분에서는 FPN(Feature Pyramid Network)과 PANet(Path Aggregation Network) 구조를 통해 Backbone의 여러 단계에서 추출된 특징 맵들을 상향식(bottom-up) 및 하향식(top-down)으로 융합하는데, 이 과정에서도 C2f 모듈이 특징 맵을 정제하고 강화하는 역할을 수행한다.6 이처럼 C2f는 모델 전체의 정보 흐름을 관장하며 성능을 좌우하는 근간을 이룬다.

6.2 C2f 모듈의 변형 및 확장 연구 동향

C2f 모듈의 성공은 그 자체로 완결된 형태가 아니라, 수많은 후속 연구를 위한 견고한 플랫폼이 되었음을 의미한다. 다양한 연구자들이 특정 목적(예: 모델 경량화, 특정 객체 유형에 대한 성능 강화)을 달성하기 위해 C2f 모듈을 수정하고 확장하는 연구를 활발히 진행하고 있다. 이는 C2f가 YOLOv8 프레임워크의 안정적이고 잘 이해된 기준점으로 자리 잡았음을 방증한다. 연구자들은 더 이상 전체 Backbone을 새로 설계하기보다, C2f라는 표준화된 슬롯에 특정 기능을 가진 ‘카트리지’(예: 변형 가능 컨볼루션, 어텐션 모듈)를 삽입하는 방식으로 모델을 개선하고 있다. 이러한 모듈식 접근은 연구 개발 속도를 가속화하는 중요한 요인이다.

Table 3: C2f 모듈 변형 연구 사례

변형 모듈 (Variant)주요 변경 사항 (Modification)목적 (Purpose)관련 연구 (Source)
C2fCIBBottleneck 블록을 Compact Inverted Block (CIB)으로 교체성능 저하 없이 연산 비용 최소화 (Lightweight)7
C2fDCB깊이 분리 합성곱(Depth-wise Separable Conv) 및 RepVGG 재파라미터화 적용C2f 모듈의 연산 효율성 향상 (Lightweight)1
C2f_RepGhostRepGhost 모듈을 통합하여 깊이별 합성곱 수행 및 추론 구조 단순화모델 경량화 및 추론 속도 향상25
DCN_C2f표준 컨볼루션을 변형 가능 컨볼루션(Deformable Convolution)으로 교체객체의 기하학적 변형에 대한 모델의 적응성 향상21
C2f_iRMBInverted Residual Mobile Block (iRMB)을 통합하여 CNN과 Transformer 요소 결합소형 객체 및 미세 패턴에 대한 다중 스케일 특징 추출 능력 강화26
SCConv-C2f구조적 재구성 컨볼루션(SCConv)을 도입하여 공간 및 채널 중복성 감소계산 복잡도 및 파라미터 수 감소27

6.3 미래 객체 탐지 모델 아키텍처에 미치는 영향

C2f 모듈의 성공은 현대 CNN 아키텍처 설계의 방향이 단순히 네트워크를 더 깊게 쌓는 경쟁을 넘어, 모듈 내부에서 어떻게 효율적으로 다중 경로 정보 융합을 구현하고 경사 흐름을 최적화할 것인가로 이동하고 있음을 시사한다. C2f가 보여준 ‘플러그인(plug-in)’ 가능한 모듈식 접근법은 향후 특정 데이터셋, 하드웨어, 또는 응용 분야에 고도로 최적화된 맞춤형 아키텍처를 설계하는 데 중요한 기반이 될 것이다. 미래의 YOLO 버전에서는 C2f의 내부 구성 요소를 쉽게 교체할 수 있는 공식 API가 제공되어, 사용자가 자신의 요구에 맞게 탐지기를 손쉽게 커스터마이징하는 시대가 열릴 수도 있다.

7. 결론

7.1 C2f 모듈의 핵심 기여 요약

C2f 모듈은 YOLOv8의 State-of-the-Art 성능을 견인한 핵심 동력이다. 이 모듈은 CSPNet의 연산 효율성 철학을 계승하면서도, 모든 중간 처리 단계의 출력을 연결하는 혁신적인 구조를 통해 정보 흐름과 특징 표현의 풍부함을 극대화했다. 그 결과, C2f는 ▲효율적인 경사 흐름을 통한 안정적 학습, ▲다양한 추상화 수준의 특징을 융합하는 강력한 표현력 확보, ▲CSP 원칙에 기반한 연산 효율성 유지라는 세 가지 목표를 성공적으로 달성했다. 이는 C3 모듈을 사용했던 이전 세대 모델 대비 적은 자원으로 더 높은 정확도를 달성하는 정량적 성과로 명확히 입증되었다.

7.2 현대 객체 탐지 모델 설계에 대한 시사점 및 향후 연구 방향

C2f 모듈의 성공은 미래 네트워크 블록 설계에 중요한 시사점을 던진다. 이제 아키텍처 설계의 핵심은 단순히 깊이를 늘리는 것이 아니라, 블록 내부의 정보 흐름을 어떻게 다양화하고 효율적으로 융합하여 제한된 연산 내에서 표현력을 극대화할 것인가에 있다. C2f는 이러한 설계 철학의 성공적인 구현 사례로서, 향후 객체 탐지 모델 개발의 중요한 참고점이 될 것이다.

앞으로 C2f를 기반으로 한 연구는 더욱 활발해질 전망이다. 모델 경량화 기술(예: 양자화, 지식 증류)과의 결합, 주의(attention) 메커니즘의 통합을 통한 특징 선택 능력 강화, 그리고 입력 데이터에 따라 동적으로 연산 경로를 조절하는 적응형 컴퓨팅 기법의 도입 등 다양한 방향의 후속 연구가 기대된다. 이러한 노력들은 객체 탐지 기술의 정확성, 속도, 효율성을 새로운 차원으로 끌어올리며 그 응용 범위를 더욱 확장시킬 것이다.

8. 참고 자료

  1. arXiv:2411.11477v3 [cs.CV] 13 Jan 2025, https://arxiv.org/pdf/2411.11477
  2. YOLOv8: A Complete Guide - Viso Suite, https://viso.ai/deep-learning/yolov8-guide/
  3. Object detection characteristics in a learning factory environment using YOLOv8 - arXiv, https://arxiv.org/html/2503.10356v1
  4. YOLOv8 Architecture Explained! - Abin Timilsina - Medium, https://abintimilsina.medium.com/yolov8-architecture-explained-a5e90a560ce5
  5. YOLOv8: Object Detection Explained - Keylabs, https://keylabs.ai/blog/under-the-hood-yolov8-architecture-explained/
  6. Understanding YOLOv8 Architecture, Applications & Features - Labellerr, https://www.labellerr.com/blog/understanding-yolov8-architecture-applications-features/
  7. Optimized YOLOv8 for Real-Time Safety Equipment Detection on Construction Sites - arXiv, https://arxiv.org/pdf/2410.20699
  8. (a) The C2f module, which is designed by referring to the idea of the… | Download Scientific Diagram - ResearchGate, https://www.researchgate.net/figure/a-The-C2f-module-which-is-designed-by-referring-to-the-idea-of-the-C3-module-and-ELAN_fig4_370956639
  9. YOLOv5 vs. YOLOv8: A Detailed Comparison - Ultralytics YOLO Docs, https://docs.ultralytics.com/compare/yolov5-vs-yolov8/
  10. Brief summary of YOLOv8 model structure · Issue #189 - GitHub, https://github.com/ultralytics/ultralytics/issues/189
  11. What is c2f in yolov8? - DEV Community, https://dev.to/angelomorse/what-is-c2f-in-yolov8-1ojc
  12. YOLO Jungle: С3, C2F, C3K2 — What Do They Even Mean …, https://hackernoon.com/yolo-jungle-s3-c2f-c3k2-what-do-they-even-mean
  13. CSPNet: A New Backbone that can Enhance Learning Capability of CNN - ResearchGate, https://www.researchgate.net/publication/337590017_CSPNet_A_New_Backbone_that_can_Enhance_Learning_Capability_of_CNN
  14. CSPNet: A New Backbone that can Enhance Learning Capability of …, https://arxiv.org/pdf/1911.11929
  15. YOLOv8 model The backbone of YOLOv8 primarily comprises the C2f module… | Download Scientific Diagram - ResearchGate, https://www.researchgate.net/figure/YOLOv8-model-The-backbone-of-YOLOv8-primarily-comprises-the-C2f-module-inspired-by-the_fig1_371845645
  16. [PDF] CSPNet: A New Backbone that can Enhance Learning Capability of CNN, https://www.semanticscholar.org/paper/CSPNet%3A-A-New-Backbone-that-can-Enhance-Learning-of-Wang-Liao/b771c57b8fc242ba589d449e04e982e0577b1c54
  17. C2F module and C3 module structure diagram: the left picture is the …, https://www.researchgate.net/figure/C2F-module-and-C3-module-structure-diagram-the-left-picture-is-the-C2F-module-and-the_fig5_373034842
  18. Schematic diagram of C2f module and C3 module (3)FPN-PAN structure - ResearchGate, https://www.researchgate.net/figure/Schematic-diagram-of-C2f-module-and-C3-module-3FPN-PAN-structure-YOLOv8-continues-to_fig1_382347323
  19. Inside YOLO — What Are C3K2, C2F, & C3K Blocks? - Medium, https://medium.com/@noel.benji/inside-yolo-what-are-c3k2-c2f-c3k-blocks-806ae4cd486f
  20. Joint C2f and Joint Loss Object Detection Based on YOLOv5 - SciTePress, https://www.scitepress.org/Papers/2024/129508/129508.pdf
  21. Enhanced Multi-Target Detection in Complex Traffic Using an Improved YOLOv8 with SE Attention, DCN_C2f, and SIoU - MDPI, https://www.mdpi.com/2032-6653/15/12/586
  22. YOLOv8-C2f-Faster-EMA: An Improved Underwater Trash Detection Model Based on YOLOv8 - PMC - PubMed Central, https://pmc.ncbi.nlm.nih.gov/articles/PMC11054227/
  23. viso.ai, https://viso.ai/deep-learning/yolov8-guide/#:~:text=The%20architecture%20consists%20of%20a,Feature%20Pyramid%20Network%20(FPN).
  24. SOD-YOLOv8—Enhancing YOLOv8 for Small Object Detection in Aerial Imagery and Traffic Scenes - MDPI, https://www.mdpi.com/1424-8220/24/19/6209
  25. Improved YOLOv8 for Gas-Flame State Recognition under Low-Pressure Conditions - MDPI, https://www.mdpi.com/1424-8220/24/19/6383
  26. CCi-YOLOv8n: Enhanced Fire Detection with CARAFE and Context-Guided Modules - arXiv, https://arxiv.org/html/2411.11011v2
  27. DGNCA-Net: A Lightweight and Efficient Insulator Defect Detection Model - MDPI, https://www.mdpi.com/1999-4893/18/8/528